package modelo;

import java.sql.ResultSet;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Vector;

public class CategoriaDAO {

	public CategoriaDAO() {
		super();
	}

	public void registrarCategoria(Categoria categoria) {
		String tiraSQL = "INSERT INTO categoria "+
		 				 "(codigocategoria, nombre, descripcion, status) "+
		 				 "VALUES ("+
		 				 "'"+categoria.getCodigocategoria()+"', '"+categoria.getNombre()+
		 				 "','"+categoria.getDescripcion()+"',"+categoria.getStatus()+" )";
		Conexion.ejecutar(tiraSQL);
	}
	
	public List<Categoria> consultarCategorias() {
		List<Categoria> categorias = new ArrayList<Categoria>();
		String tiraSQL = "SELECT * FROM categoria";
		ResultSet resultSet = Conexion.consultar(tiraSQL);		
		try {
			while (resultSet.next()) {
				String codigo = resultSet.getString("codigocategoria");
				String nombre = resultSet.getString("nombre");
				String descripcion = resultSet.getString("descripcion");
				int status  = resultSet.getInt("status");
				Categoria categoria = new Categoria(codigo, nombre, descripcion, status);
				categorias.add(categoria);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return categorias;
	}
	
	public Vector<String> llenarComboCategoria(){
		Vector<String> vectorcategoria = new Vector<String>();
		String tiraSQL = "SELECT * FROM categoria";
		ResultSet resultSet = Conexion.consultar(tiraSQL);
		try{
			while(resultSet.next()){
				String nombre = resultSet.getString("nombre");
				vectorcategoria.add(nombre);
			}
		}
		catch(SQLException e) {
			e.printStackTrace();
		}
		return vectorcategoria;
	}
	
	public Categoria buscarCategoria(String nombre) {
		Categoria categoria = new Categoria();
		categoria =null;
		String tiraSQL = "SELECT * FROM categoria WHERE nombre= '"+nombre+"' ";
		ResultSet resultSet = Conexion.consultar(tiraSQL);		
		try {
			while (resultSet.next()) {
				
				String codigocategoria = resultSet.getString("codigocategoria");
				String descripcion = resultSet.getString("descripcion");
				int status  = resultSet.getInt("status");
				
				categoria = new Categoria(codigocategoria, nombre, descripcion, status);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return categoria;
	}

	public Categoria buscarCategoria2(String codigo) {
		Categoria categoria = new Categoria();
		categoria =null;
		String tiraSQL = "SELECT * FROM categoria WHERE codigocategoria= '"+codigo+"' ";
		ResultSet resultSet = Conexion.consultar(tiraSQL);		
		try {
			while (resultSet.next()) {
				
				String nombre = resultSet.getString("nombre");
				String descripcion = resultSet.getString("descripcion");
				int status  = resultSet.getInt("status");
				
				categoria = new Categoria(codigo, nombre, descripcion, status);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return categoria;
	}
	
}